import { getHomeGoods } from 'network/home'
import { ref, reactive } from 'vue'

export default function() {
  // 获取两个控制栏的实例
  let tabControlTop = ref(null)
  let tabControl = ref(null)
  // 列表数据
  let goodslist = ref([])
  // 分类类型
  let type = ''
  // 当前页
  let page = 1

  // 一开始请求一次分类
  getHomeGoodsData({ sales: 1, page })
  // tab类型
  const tabType = ['sales', 'recommend', 'new']
  // 收到需要获取数据的下标
  function changeTab(index) {
    type = tabType[index]
    page = 1
    goodslist.value = []
    getHomeGoodsData({ [type]: 1, page })
    // 点击切换的时候 让两个切换栏保持同步
    tabControl.value.currentIndex = tabControlTop.value.currentIndex = index
  }
  //定义一个获取分类数据的方法
  async function getHomeGoodsData(params) {
    const res = await getHomeGoods(params)
    goodslist.value.push(...res.goods.data)
  }
  // 监听滚动到底部事件
  function pullingUp() {
    ++page
    getHomeGoodsData({ [type]: 1, page })
  }
  return reactive({
    goodslist,
    changeTab,
    pullingUp,
    tabControlTop,
    tabControl
  })
}
